#ifndef SCENE_H
#define SCENE_H

#include <QList>
#include "objetscene.h"

/*
 *  @autheur : LEMOUEL Florian
 *  @date : 04.04.2013
 *  @version 1.0 : création de la classe complète
 */


/*
 * Classe représentant une Scene en 3D.
 * La scène est consituée de plusieurs objets de scène,
 * d'une caméra et de lumières
 * Une face a un ensemble de sommets la constituant.
 * On peut calculer son centre de gravité ainsi que sa normale.
 */

class Scene
{
 //--------------------- Constructeurs et destructeur -------------------
public:

    //Constructeur par défault
    Scene();

    //Constructeur d'une scène qui prend une liste d'objets
    Scene(QList<ObjetScene*> objets);

    //Constructeur par recopie
    Scene(const Scene& scene);

    //Destructeur
    ~Scene();
    //----------------------------------------------------------------------
    //--------------------- Méthodes ---------------------------------------

    //Fonction de dessin
    void dessiner();

    //----------------------------------------------------------------------
    //--------------------- Accesseurs -------------------------------------

    //----------------------------------------------------------------------
    //--------------------- Surcharge des opérateurs -----------------------

    //----------------------------------------------------------------------
    //--------------------- Attributs --------------------------------------
private:
    //Liste des objets de la scène
    QList<ObjetScene*> _objets;

    //----------------------------------------------------------------------
};

#endif // SCENE_H
